<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>遍历对象和数组</title>
  </head>
  <body>
    <script>
      // 遍历数组
      const foods = ["猪脚饭", "螺蛳粉", "肠粉", "黄焖鸡", "金拱门"];
      // for (let index = 0; index < foods.length; index++) {
      //   const element = foods[index]
      //   console.log('for循环遍历' + element)
      // }

      // foods.forEach(item => {
      //   console.log('forEach遍历' + item)
      // })

      // 所有 ArkTS 中学习的数组方法 都可以使用
      // map 基于老数组，映射出一个新的
      // const newArr = foods.map(v => {
      //   console.log(v)
      //   return v + '好好吃~~'
      // })
      // console.log(newArr)

      // 面试题：你用过数组的哪些方法？
      // 数组数据操纵：push(末尾添加),pop（末尾删除）,shift（首删除）,unshift（首添加）,splice（指定删除）,concat（连接）
      // 通过回调函数操纵数组:filter,foreach,map,every（都符合要求）,some（一个符合要求即可）,find（找到元素）,findIndex（找到索引）
      // 求和: reduce（求和）

      // 遍历对象
      const dog = {
        name: "拉布拉多",
        color: "金色",
        food: "骨头",
        friend: "猫",
      };
      // for in 可以用来遍历对象
      // ArkTS中不支持 forin
      // https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/typescript-to-arkts-migration-guide-V5#%E4%B8%8D%E6%94%AF%E6%8C%81for--in
      // ArkTS中不支持中括号对象取值 JS 和 TS 均支持
      for (const key in dog) {
        console.log(key);
        // 对象取值 对象.xxx js 中还支持 对象[属性名]
        console.log(dog[key]);
        // router.getParams as Record<string,string>
      }
    </script>
  </body>
</html>
